home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Taifun
/
Taifun 155 (1991-03-10)(Manewaldt, A.)(DE)(PD).zip
/
Taifun 155 (1991-03-10)(Manewaldt, A.)(DE)(PD).adf
/
Off_Pointer
/
PointerOff.c
< prev
next >
Wrap
C/C++ Source or Header
|
1991-03-01
|
2KB
|
106 lines
/*
PointerOff.c V1.3
Autor: Stefan Scholl (== stesch@sks.ppc.sub.org)
PointerOff bleibt im Hintergrund (ohne RUN) und schaltet nach 2 Sekunden
den Mauszeiger aus. Wenn man die Maus bewegt erscheint der Zeiger wieder.
Erneutes Starten von PointerOff entfernt es wieder aus dem Speicher.
Ich habe noch den alten Lattice 4.01
Compilieren und linken mit:
lc -d -b -r -v PointerOff
blink lib:cback.o PointerOff.o lib lib:lc.lib lib:amiga.lib sc sd nd verbose
Der Source ist nicht besonders fein (gotos), aber dafuer ist das Compilat
relativ kurz (mit Lattice C 4.01 2204 Bytes).
Das Programm ist vollkommen Public Domain, d.h. es darf frei kopiert und
auch veraendert werden! Wenn moeglich bitte in neueren Versionen erwaehnen
von wem die Version 1.3 stammt. :-)
*/
#include <string.h>
#include <exec/types.h>
#include <exec/ports.h>
#include <exec/memory.h>
#include <graphics/gfxmacros.h>
#include <libraries/dos.h>
#include <proto/exec.h>
#include <proto/graphics.h>
#include <proto/dos.h>
#define WARTETICKS 100
#define PORTNAME "PointerOff.port"
struct GfxBase *GfxBase;
long _stack = 4000;
char *_procname = "PointerOff";
long _priority = 1;
long _BackGroundIO = 1; /* I/O mit Start-Console */
extern BPTR _Backstdout;
void MemCleanup(){}
void chkabort() {}
void out(text)
char *text;
{
if(_Backstdout) Write(_Backstdout,text,strlen(text));
}
void _main()
{
register struct MsgPort *mp;
register long sig;
out("\x1b[33mPointerOff V1.3\x1b[31m\n1990 written by Stefan Scholl\n\n");
if(mp = FindPort(PORTNAME)) /* Port schon da => weg damit */
{
Signal(mp->mp_SigTask, 1 << mp->mp_SigBit); /* anklopfen.. */
out("PointerOff removed.\n");
goto ende1;
}
else /* Port existiert noch nicht... */
{
if(!(mp = CreatePort(PORTNAME,0)))
{
out("Can\'t create MessagePort!\n");
goto ende1;
}
}
if(!(GfxBase=(struct GfxBase *) OpenLibrary("graphics.library",0)))
{
out("Can\'t open \"graphics.library\"!\n");
goto ende2;
}
out("PointerOff installed.\n");
if(_Backstdout) Close(_Backstdout);
_Backstdout=0;
for(;;)
{
FreeSprite(0); /* Weg mit dem Mauszeiger */
sig=SetSignal(0,0);
if(sig & (1 << mp->mp_SigBit))
goto ende3;
Delay(WARTETICKS); /* Warten */
}
ende3:
if(GfxBase) CloseLibrary((struct Library *)GfxBase);
ende2:
DeletePort(mp);
ende1:
if(_Backstdout) Close(_Backstdout);
}